# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

# Autogen ADC Control Interface DIF library
sw_lib_dif_autogen_adc_ctrl = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_adc_ctrl',
    sources: [
      hw_ip_adc_ctrl_reg_h,
      'dif_adc_ctrl_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen AES DIF library
sw_lib_dif_autogen_aes = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_aes',
    sources: [
      hw_ip_aes_reg_h,
      'dif_aes_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen Alert Handler DIF library
sw_lib_dif_autogen_alert_handler = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_alert_handler',
    sources: [
      hw_ip_alert_handler_reg_h,
      'dif_alert_handler_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen Always-On Timer DIF library
sw_lib_dif_autogen_aon_timer = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_aon_timer',
    sources: [
      hw_ip_aon_timer_reg_h,
      'dif_aon_timer_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen Clock Manager DIF library
sw_lib_dif_autogen_clkmgr = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_clkmgr',
    sources: [
      hw_ip_clkmgr_reg_h,
      'dif_clkmgr_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen CSRNG DIF library
sw_lib_dif_autogen_csrng = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_csrng',
    sources: [
      hw_ip_csrng_reg_h,
      'dif_csrng_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen EDN DIF library
sw_lib_dif_autogen_edn = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_edn',
    sources: [
      hw_ip_edn_reg_h,
      'dif_edn_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen Entropy Source DIF library
sw_lib_dif_autogen_entropy_src = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_entropy_src',
    sources: [
      hw_ip_entropy_src_reg_h,
      'dif_entropy_src_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen Flash Controller DIF library
sw_lib_dif_autogen_flash_ctrl = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_flash_ctrl',
    sources: [
      hw_ip_flash_ctrl_reg_h,
      'dif_flash_ctrl_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen GPIO DIF library
sw_lib_dif_autogen_gpio = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_gpio',
    sources: [
      hw_ip_gpio_reg_h,
      'dif_gpio_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen HMAC DIF library
sw_lib_dif_autogen_hmac = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_hmac',
    sources: [
      hw_ip_hmac_reg_h,
      'dif_hmac_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen I2C DIF library
sw_lib_dif_autogen_i2c = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_i2c',
    sources: [
      hw_ip_i2c_reg_h,
      'dif_i2c_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen Key Manager DIF library
sw_lib_dif_autogen_keymgr = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_keymgr',
    sources: [
      hw_ip_keymgr_reg_h,
      'dif_keymgr_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen KMAC DIF library
sw_lib_dif_autogen_kmac = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_kmac',
    sources: [
      hw_ip_kmac_reg_h,
      'dif_kmac_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen Lifecycle Controller DIF library
sw_lib_dif_autogen_lc_ctrl = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_lc_ctrl',
    sources: [
      hw_ip_lc_ctrl_reg_h,
      'dif_lc_ctrl_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen OTBN DIF library
sw_lib_dif_autogen_otbn = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_otbn',
    sources: [
      hw_ip_otbn_reg_h,
      'dif_otbn_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen OTP Controller DIF library
sw_lib_dif_autogen_otp_ctrl = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_otp_ctrl',
    sources: [
      hw_ip_otp_ctrl_reg_h,
      'dif_otp_ctrl_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen PATTGEN DIF library
sw_lib_dif_autogen_pattgen = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_pattgen',
    sources: [
      hw_ip_pattgen_reg_h,
      'dif_pattgen_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen Pin Multiplexer DIF library
sw_lib_dif_autogen_pinmux = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_pinmux',
    sources: [
      hw_top_earlgrey_pinmux_reg_h,
      'dif_pinmux_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen Power Manager DIF library
sw_lib_dif_autogen_pwrmgr = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_pwrmgr',
    sources: [
      hw_ip_pwrmgr_reg_h,
      'dif_pwrmgr_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen Reset Manager DIF library
sw_lib_dif_autogen_rstmgr = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_rstmgr',
    sources: [
      hw_ip_rstmgr_reg_h,
      'dif_rstmgr_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen RV PLIC DIF library
sw_lib_dif_autogen_rv_plic = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_rv_plic',
    sources: [
      hw_top_earlgrey_rv_plic_reg_h,
      'dif_rv_plic_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen RV Timer DIF library
sw_lib_dif_autogen_rv_timer = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_rv_timer',
    sources: [
      hw_ip_rv_timer_reg_h,
      'dif_rv_timer_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen SPI Device DIF library
sw_lib_dif_autogen_spi_device = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_spi_device',
    sources: [
      hw_ip_spi_device_reg_h,
      'dif_spi_device_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen SPI Host DIF library
sw_lib_dif_autogen_spi_host = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_spi_host',
    sources: [
      hw_ip_spi_host_reg_h,
      'dif_spi_host_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen SRAM Controller DIF library
sw_lib_dif_autogen_sram_ctrl = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_sram_ctrl',
    sources: [
      hw_ip_sram_ctrl_reg_h,
      'dif_sram_ctrl_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen System Reset Control DIF library
sw_lib_dif_autogen_sysrst_ctrl = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_sysrst_ctrl',
    sources: [
      hw_ip_sysrst_ctrl_reg_h,
      'dif_sysrst_ctrl_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen USB Device DIF library
sw_lib_dif_autogen_usbdev = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_usbdev',
    sources: [
      hw_ip_usbdev_reg_h,
      'dif_usbdev_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)

# Autogen UART DIF library
sw_lib_dif_autogen_uart = declare_dependency(
  link_with: static_library(
    'sw_lib_dif_autogen_uart',
    sources: [
      hw_ip_uart_reg_h,
      'dif_uart_autogen.c',
    ],
    dependencies: [
      sw_lib_mmio,
    ],
  )
)
